package com.teamone.etl.apimanager.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teamone.etl.apimanager.entity.ApiSource;
import com.teamone.etl.apimanager.request.ApiSourceQuery;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;

/**
 * 源接口表(ApiSource)表数据库访问层
 *
 * @author makejava
 * @since 2021-01-20 18:32:05
 */
@Mapper
public interface ApiSourceDao extends BaseMapper<ApiSource> {

    /**
     * 查询同类接口数量
     * @return 同类接口数量和类型id
     */
    List<Map<String, Object>> selectApiAmountGroupByApiTypeId();

    /**
     * 根据类型Id逻辑删除源接口
     * @param apiTypeId 接口类型Id
     */
    void logicDeleteByApiTypeId(Integer apiTypeId);

    /**
     * 查询源接口列表 分页+模糊
     * @param apiSourceQuery 查询对象
     * @return 源接口列表
     */
    List<ApiSource> selectAll(ApiSourceQuery apiSourceQuery);

    /**
     * 新增接口
     * @param apiSource 接口
     */
    void saveOne(ApiSource apiSource);

    /**
     * 根据id删除源接口（逻辑删除）
     * @param id 源接口id
     */
    void logicDeleteById(Integer id);

    /**
     * 修改接口
     * @param apiSource 修改接口对象
     */
    void updateOne(ApiSource apiSource);

    /**
     * 根据源接口Id查询
     * @param apiSourceId 源接口Id
     * @return 源接口
     */
    ApiSource selectByApiSourceId(Integer apiSourceId);
}